import Vue from 'vue'
import Notice from '@/components/Notice.vue'

function create (component, props) {
  // 组件如何编程构造函数
  // 1.vue.extend() //作业
  // 2.render

  // const vm = new Vue({
  //   // h 是createElement,返回Vnode
  //   render: h => h(component, {props})
  // }).$mount()  // 不指定宿主元素 则会创建真实dom,但不会追加操作
  // 获取真实dom
  // document.body.appendChild(vm.$el)

  // // 获取组件实例
  // const comp = vm.$children[0]
  const Ctor = Vue.extend(component)
  const comp = new Ctor({propsData: props})
  comp.$mount()

  document.body.appendChild(comp.$el)

  // 删除事件
  comp.remove = function() {
    document.body.removeChild(comp.$el)
    comp.$destroy()
  }

  return comp
}

export default {
  install: (vue) => {
    vue.prototype.$notice = (props) => {
      return create(Notice, props)
    }
  }
}

